﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Threading;
using System.Xml;

namespace Manager
{

    public class Manager
    {

        public static Config conf = null;
        private static ServerController serverCtrl = null;
        private static AdminController adminCtrl = null;
        private static ClientController clientCtrl = null;

        public static void Main(string[] args)
        {
            // Objeto que se lockea para manejar la concurrencia
            Object mutex = new Object();

            //  Carga la configuracion del XML del Agente
            conf = new Config("");

            // Invocacion el servicio que interroga los servidores cada 1 segundo
            serverCtrl = new ServerController();
            serverCtrl.IniciarServicio(mutex);

            // Invocacion el servicio que acepta las peticiones de los clientes
            clientCtrl = new ClientController();
            clientCtrl.IniciarServicio(mutex);

            // Invocacion el servicio que acepta las peticiones del administrador
            adminCtrl = new AdminController();
            adminCtrl.IniciarServicio();
        }
    }
}
